package com.sort;

public class CountingSort {
    public void sort(int[] arr,int maxValue){
//        创建数组，长度为排序数组中的最大值+1
        int[] tmp = new int[maxValue+1];
//        把排序数组中每个数出现的次数放入新数组中
        for (int i : arr){
            tmp[i]++;
        }
        int sortedIndex = 0;
//        按照新数组中每个数出现的次数排序
        for (int i=0;i<tmp.length;i++){
            while(tmp[i]>0){
                arr[sortedIndex++] = i;
                tmp[i]--;
            }
        }
    }
//      获取数组中的最大值
    public int getMax(int[] arr){
        int maxValue = arr[0];
        for(int i : arr){
            if(i>maxValue){
                maxValue = i;
            }
        }
        return maxValue;
    }
}
